Artificial reality system having adaptive degrees of freedom (dof) selection

ABSTRACT

An artificial reality system is described that implements adaptive degrees-of-freedom (DOF) selection when tracking frames of reference and rendering artificial reality content. In one example, the artificial reality system comprises a head mounted display (HMD) that outputs rendered artificial reality content. A performance monitor determines one or more performance indicators associated with the artificial reality system. A degree-of-freedom (DOF) selector applies one or more policies to the performance indicators to select between a first mode in which a pose tracker computes one or more poses of the HMD within the 3D environment using 6DOF and a second mode in which the pose tracker computes the one or more poses using 3DOF. The pose tracker computes the one or more poses for the HMD within the 3D environment in accordance with the selected mode. A rendering engine renders the content for the artificial reality application based on the computed pose.

TECHNICAL FIELD

This disclosure generally relates to artificial reality systems, such asvirtual reality, mixed reality and/or augmented reality systems, andmore particularly, to head-mounted displays (HMDs) and other componentsof artificial reality systems.

BACKGROUND

Artificial reality systems are becoming increasingly ubiquitous withapplications in many fields such as computer gaming, health and safety,industrial, and education. As a few examples, artificial reality systemsare being incorporated into mobile devices, gaming consoles, personalcomputers, movie theaters, and theme parks. In general, artificialreality is a form of reality that has been adjusted in some mannerbefore presentation to a user, which may include, e.g., a virtualreality (VR), an augmented reality (AR), a mixed reality (MR), a hybridreality, or some combination and/or derivatives thereof.

Typical artificial reality systems include one or more devices forrendering and displaying content to users. As one example, an artificialreality system may incorporate a head-mounted display (HMD) worn by auser and configured to output artificial reality content to the user. Inparticular, the artificial reality system typically computes a currentpose (e.g., position and orientation) of a frame of reference, such asthe HMD, and selectively renders the content for display to the userbased on the current pose. The artificial reality content may includecompletely-generated content or generated content combined with capturedcontent (e.g., real-world video and/or images).

SUMMARY

In general, this disclosure describes an artificial reality systemhaving adaptive degrees-of-freedom (DOF) selection. As further describedherein, the artificial reality system monitors various operatingconditions and adaptively selects different DOF for use in computing oneor more poses from one or more frames of reference of the artificialreality system. The artificial reality system monitors operatingconditions that may affect the ability of the system to accurately trackthe frames of reference, such as a display of a head mounted display(HMD), and render quality artificial reality content based on a currentviewing perspective of the frame of reference. Example operatingconditions include feature tracking quality, feature lighting quality,network performance, computing resource usage, or other factors that maynegatively impact the ability of system. The artificial reality systemapplies policies to performance indicators determined from the monitoredconditions to adaptively select between different DOF for computation ofthe one or more poses in real-time or pseudo-real-time. For example, theartificial reality system may apply policies to the performanceindicators to select between computing poses using 6DOF (e.g., bothrotation and translational movement along axes of the frame ofreference) or computing poses using only 3DOF (e.g., only rotationalmovement along axes of the frame of reference).

Accordingly, the techniques of the disclosure provide specificimprovements to the computer-related field of rendering and displayingcontent within an artificial reality system. For example, an artificialreality system as described herein may provide a high-quality artificialreality experience to a user of the artificial reality system bycomputing poses using 6DOF. Further, such a system may seamlessly switchto computing poses using 3DOF if performance indicators indicate thatthe user experience would suffer if the poses were to be computed using6DOF. As examples, systems as described herein may avoid using 6DOFwhere software, hardware, network, or environmental conditions wouldotherwise cause degradation of the user experience. Further, examplesystems as described herein may reduce negative effects experienced bysome users of artificial reality systems, such as disorientation,nausea, “swimminess,” and other side effects.

In one example, this disclosure describes an artificial reality systemcomprising an HMD configured to output artificial reality content. Thesystem further comprises a pose tracker configured to compute one ormore poses of the HMD within a three-dimensional (3D) environment and aperformance monitor, executing on one or more processors, configured todetermine one or more performance indicators associated with theartificial reality system. The system further comprises a DOF selectorconfigured to apply one or more policies to the performance indicatorsto select between a first mode in which the pose tracker is configuredto compute the one or more poses of the HMD using 6DOF and a second modein which the pose tracker is configured to compute the one or more posesusing 3DOF. A rendering engine of the system is configured to render theartificial reality content based on the computed pose.

In another example, this disclosure describes a method comprisingdetermining one or more performance indicators associated with anartificial reality system having at least one HMD and applying one ormore policies to the performance indicators to select between a firstmode in which one or more poses of the HMD within a 3D environment arecomputed using 6DOF and a second mode in which the one or more poses arecomputed using 3DOF. The method further comprises computing the one ormore poses for the HMD within the 3D environment in accordance with theselected mode, rendering artificial reality content based on thecomputed one or more poses, and outputting, by the HMD, the renderedartificial reality content.

In another example, this disclosure describes a non-transitory,computer-readable medium comprising instructions that, when executed,cause one or more processors to determine one or more performanceindicators associated with an artificial reality system having at leastone HMD and apply one or more policies to the performance indicators toselect between a first mode in which one or more poses of the HMD withina 3D environment are computed using 6DOF and a second mode in which theone or more poses are computed using 3DOF. The instructions are furtherconfigured to cause the one or more processors to compute the one ormore poses for the HMD within the 3D environment in accordance with theselected mode, render artificial reality content based on the computedone or more poses, and output the rendered artificial reality content.

The details of one or more examples of the techniques of this disclosureare set forth in the accompanying drawings and the description below.Other features, objects, and advantages of the techniques will beapparent from the description and drawings, and from the claims.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1A is an illustration depicting an example artificial realitysystem that adaptively selects DOF for use in computing one or moreposes for a frame of reference and when rendering content to a user inaccordance with the techniques of the disclosure.

FIG. 1B is an illustration depicting another example artificial realitysystem that adaptively selects DOF for use in computing one or moreposes when rendering content to users in accordance with the techniquesof the disclosure.

FIG. 2 is an illustration depicting an example HMD that operates inaccordance with the techniques of the disclosure.

FIG. 3 is a block diagram showing example implementations of the consoleand HMD of FIGS. 1A, 1B.

FIG. 4 is a block diagram depicting an example in which pose trackingand DOF selection is performed by the HMD of FIGS. 1A, 1B to renderartificial reality content in accordance with the techniques of thedisclosure.

FIG. 5 is an illustration depicting artificial reality content renderedin accordance with the techniques of the disclosure.

FIG. 6 is a block diagram depicting an example implementation of thepolices of FIGS. 3, 4 as a policy repository in accordance with thetechniques of the disclosure.

FIG. 7 is a flowchart illustrating an example operation for adaptivelyselecting DOF for use in computing one or more poses in accordance withthe techniques of the disclosure.

Like reference characters refer to like elements throughout the figuresand description.

DETAILED DESCRIPTION

FIG. 1A is an illustration depicting an example artificial realitysystem 1 that adaptively selects degrees of freedom (DOF) for use incomputing one or more poses of a frame of reference when renderingcontent to user 110 in accordance with the techniques of the disclosure.As further explained below, in this example, console 106 and/or HMD 112monitor performance indicators of artificial reality system 1 and, basedon application of policies to the monitored performance indicators,performs adaptively selection of DOF for use during pose computation ofa frame of reference, such as a display of HMD 112. As explained, inthis way, artificial reality system 1 may operate to provide ahigh-quality and more realistic artificial reality experience for user110 and avoid inaccuracies that may otherwise arise.

In the example of FIG. 1A, artificial reality system 1 includes HMD 112,controllers 114A-114B (collectively, “controllers 114”), console 106and, in some examples, one or more sensors 90. As shown, HMD 112 istypically worn by user 110 and includes an electronic display andoptical assembly for presenting artificial reality content 122 to theuser. In addition, HMD 112 includes one or more sensors (e.g.,accelerometers) for tracking motion of the HMD and may include one ormore image capture devices, e.g., cameras, line scanners and the like,for capturing image data of the surrounding environment. Each controller114 is an input device which user 110 may use to provide input toconsole 106, a respective HMD 112, or another component of artificialreality system 1. In this example, console 106 is shown as a singlecomputing device, such as a gaming console, workstation, a desktopcomputer, or a laptop. In other examples, console 106 may be distributedacross a plurality of computing devices, such as a distributed computingnetwork, a data center, or a cloud computing system. Console 106, HMD112, controllers 114 and sensors 90 may, as shown in this example, becommunicatively coupled via network 104, which may be a wired orwireless network, such as WiFi, a mesh network or a short-range wirelesscommunication medium. Although HMD 112 is shown in this example as incommunication with, e.g., tethered to or in wireless communication with,console 106, in some implementations HMD 112 operates as a stand-alone,mobile artificial reality system.

In general, artificial reality system 1 uses information captured from areal-world 3D environment to render artificial reality content 122 fordisplay to user 110. In the example of FIG. 1A, user 110 views theartificial reality content 122 constructed and rendered by an artificialreality application executing on console 106 and/or HMD 112. As oneexample, artificial reality content 122 may be a consumer gamingapplication in which user 110 is rendered as avatar 120 with, in someexamples, as a mixture of real-world imagery and virtual objects, e.g.,mixed reality and/or augmented reality. In other examples, artificialreality content 122 may be, e.g., a video conferencing application, anavigation application, an educational application, training orsimulation applications, or other types of applications that implementartificial reality.

During operation, the artificial reality application constructsartificial content for display to user 110 by tracking and computingpose information for a frame of reference, typically a viewingperspective of HMD 112. Based on the current viewing perspective, theartificial reality application renders the 3D, artificial realitycontent which may be overlaid, at least in part, upon the real-world 3Denvironment of user 110. During this process, the artificial realityapplication uses sensed data received from HMD 112, such as movementinformation and user commands, and, in some examples, data from anyexternal sensors 90, such as external cameras, to capture 3D informationwithin the real world environmental, such as motion by user 110 and/orfeature tracking information with respect to user 110. Based on thesensed data, the artificial reality application determines a currentpose for the frame of reference of HMD 112 and, in accordance with thecurrent pose, renders the artificial reality content. More specifically,the artificial reality application processes the received information tocompute updated pose information for a frame of reference, e.g., adisplay of HMD 112, representative of motion (i.e., rotations and/ortranslation) with respect to a set of DOF.

Moreover, in accordance with the techniques of the disclosure, theartificial reality application performs adaptive DOF selection based onperformance indicators determined by the application with respect tocurrent operating conditions or characteristics of artificial realitysystem 1. That is, as further described herein, the artificial realityapplication monitors operating conditions to determine currentperformance indicators that may affect and degrade the quality ofartificial reality content 122. Example operating conditions monitoredby the artificial reality application include feature tracking quality,feature lighting quality, network performance, computing resource usage,eye tracking quality, environmental brightness, line-of-sight or othervisibility conditions affecting image tracking, image texture, renderingquality, network performance or latency, computing resource usage,jitter or any other factors that may negatively impact the ability ofsystem to accurately compute updated pose information for one or moreframes of reference.

The artificial reality application adaptively applies one or morepolicies to the current performance indicators to dynamically select, inreal-time or pseudo real-time, between different sets of permissible DOFfor estimated motion (i.e., estimated rotations and translations) to beused in computing an updated pose for the frame of reference of HMD 112.When determining an updated pose for the frame of reference andrendering content for the current viewing perspective, the artificialreality application processes current motion data using the selectedDOF, which in some examples may be only a subset of the available DOF.In other words, based on the current motion data capture fromcontrollers 114 and/or sensors 90, the artificial reality applicationcomputes estimated movement of the frame of reference with respect toonly the permissible DOF of the selected set, thereby operating toprovide a high-quality and more realistic artificial reality experiencefor user 110 and avoid inaccuracies that may otherwise arise.

In some examples, each performance indicator is associated with acorresponding performance threshold defined by a policy, which may beconfigurable by user 110. In some implementations, artificial realitysystem 1 applies the policies to the performance indicators to determinewhether a transition condition has been satisfied, thereby triggeringusage of a different set of DOF. Upon meeting or exceeding theperformance threshold value for a particular performance indicator,artificial reality system 1 dynamically selects between the differentsets of permissible DOF to be used in computing an updated pose for theframe of reference of HMD 112.

As one example, artificial reality system 1 may monitor operatingconditions and characteristics to determine current performanceindicators and apply policies to the performance indicators todynamically select between a first mode in which computed motion of theframe of reference is permitted with respect to a full 6DOF (e.g., bothrotational and translational movement of the frame of reference) and asecond mode in which motion of the frame of reference is permitted withrespect to only 3DOF (e.g., rotational movement of the frame ofreference). The use of full 6DOF when computing updated poses for theframe of reference may provide numerous advantages over the use of 3DOF.For example, permitting rotational motion by HMD 112 and translationalmovement may allow for the rendering of more realistic and engagingartificial reality content in a manner that more accurately representsreal-world movement. However, the degradation of various performanceindicators may negatively affect the ability of artificial realitysystem 1 to accurately compute poses for a frame of reference or renderartificial reality content with respect to the full 6DOF. For example,if the ambient light is too low or if the environment lacks a sufficientnumber of trackable features, the artificial reality applicationexecuting on console 106 and/or HMD 112 may be unable to accuratelyperform feature tracking. This may cause the artificial realityapplication to inaccurately compute poses using 6DOF, which maynegatively impact the experience of user 110 because the real-worldmotion of user 110 (e.g., captured as movement of HMD 112) does notalign with rendered motion within the artificial reality world. Asanother example, if latency of network 104 becomes too high orartificial reality system 1 does not have sufficient software and/orhardware resources to compute poses using 6DOF based on current loading,user 110 may experience stuttering, lag, reduced frame rates, or othernegative consequences. In such situations, the artificial realityapplication may automatically and dynamically transition to the mode inwhich, with respect to computation of pose estimates, motion of theframe of reference is only permitted with respect to 3DOF (e.g.,rotational movement of the frame of reference). While the use of 3DOFmay not provide as engaging of an experience as the use of 6DOF, theaccuracy and/or quality of poses computed using 3DOF may be more robustto the degradation of these performance indicators than 6DOF. As aresult, content rendered and displayed in accordance with the updatedpose may provide a more realistic experience for user 110.

In some examples, the adaptive transition between use of different setsof DOF when computing poses is automatic based on application of thepolicies to the monitored performance indicators. In other examples,artificial reality system 1 performs the transition in response toreceiving confirmation from a user, such as user 110. In some examples,artificial reality system 1 may default to computing the poses of HMD112 using 6DOF. In other examples, artificial reality system 2 maydefault to computing the poses using 3DOF.

Accordingly, the techniques of the disclosure provide specific technicalimprovements to the computer-related field of rendering and displayingcontent within an artificial reality system. For example, artificialreality systems as described herein may provide a high-qualityartificial reality experience to a user, such as user 110, of theartificial reality application by computing poses using full 6DOF whenpermitted. Further, responsive to sensing operating conditions andcharacteristics that may degrade the user's experience, such systems maybe configured to seamlessly switch to computing poses using a reducedset of DOF, such as 3DOF. As examples, systems as described herein mayavoid using 6DOF where software, hardware, network, or environmentalconditions would otherwise cause degradation of the user experience.Further, example systems as described herein may reduce negative effectsexperienced by some users of artificial reality applications, such asdisorientation, nausea, “swimminess,” and other side effects.

FIG. 1B is an illustration depicting another example artificial realitysystem 2 that adaptively selects degrees of freedom for use in computingone or more poses when rendering content to users 110A-110C(collectively, “users 110”) in accordance with the techniques of thedisclosure. In this example, artificial reality system 2 includescameras 102A and 102B (collectively, “cameras 102”), HMDs 112A and 112B(collectively, “HMDs 112”), controllers 114A-114D (collectively,“controllers 114”), console 106, and mobile device 118. Mobile device118 may be, for example, a mobile phone, a laptop, a tablet computer, awearable device such as smart glasses, a Personal Digital Assistant(PDA), and the like.

As shown in FIG. 1B, artificial reality system 2 represents a multi-userenvironment in which an artificial reality application executing onconsole 106, HMDs 112 and/or mobile device 118 presents artificialreality content to each user based on a current viewing perspective of acorresponding frame of reference for that user. That is, in thisexample, the artificial reality application constructs artificialcontent by tracking and computing pose information for a frame ofreference for each of HMDs 112 and mobile device 118. Artificial realitysystem 2 uses data received from cameras 102, HMDs 112, controllers 114,and mobile device 118 to capture 3D information within the real worldenvironmental, such as motion by users 110 and/or tracking informationwith respect to users 110 and objects 108A, for use in computing updatedpose information for a corresponding frame of reference of HMDs 112 ormobile device 118. As one example, the artificial reality applicationmay render, based on a current viewing perspective determined for mobiledevice 118, artificial reality content 122 having content objects128A-128C as spatially overlaid upon real world objects 108A-108C(collectively, “objects 108”). Further, from the perspective of mobiledevice 118, artificial reality system 2 renders avatars 120A, 120B basedupon the estimated positions for users 110A, 110B, respectively.

In a manner similar to the example discussed above with respect to FIG.1A, artificial reality system 2 performs adaptive DOF selection based onperformance indicators determined by the artificial reality applicationwith respect to current operating conditions or characteristics ofartificial reality system 2. In this way, as explained herein,artificial reality system 2 may operate to provide a high-quality andmore realistic artificial reality experience for user 110 and avoidinaccuracies that may otherwise arise.

FIG. 2 is an illustration depicting an example HMD 112 configured tooperate in accordance with the techniques of the disclosure. HMD 112 ofFIG. 2 may be an example of any of HMDs 112 of FIGS. 1A and 1B. HMD 112may be part of an artificial reality system, such as artificial realitysystems 1, 2 of FIGS. 1A, 1B, or may operate as a stand-alone, mobileartificial realty system configured to implement the techniquesdescribed herein.

In this example, HMD 112 includes a front rigid body and a band tosecure HMD 112 to a user. In addition, HMD 112 includes aninterior-facing electronic display 203 configured to present artificialreality content to the user. Electronic display 203 may be any suitabledisplay technology, such as liquid crystal displays (LCD), quantum dotdisplay, dot matrix displays, light emitting diode (LED) displays,organic light-emitting diode (OLED) displays, cathode ray tube (CRT)displays, e-ink, or monochrome, color, or any other type of displaycapable of generating visual output. In some examples, the electronicdisplay is a stereoscopic display for providing separate images to eacheye of the user. In some examples, the known orientation and position ofdisplay 203 relative to the front rigid body of HMD 112 is used as aframe of reference, also referred to as a local origin, when trackingthe position and orientation of HMD 112 for rendering artificial realitycontent according to a current viewing perspective of HMD 112 and theuser.

As further shown in FIG. 2, in this example HMD 112 further includes oneor more motion sensors 206, such as one or more accelerometers (alsoreferred to as inertial measurement units or “IMUs”) that output dataindicative of current acceleration of HMD 112 with respect to 3DOF,typically roll, pitch and yaw. Moreover, HMD 112 may include one or moreintegrated image capture devices 208, such as a video camera, laserscanner, Doppler radar scanner, depth scanner, or the like, configuredto output image data representative of a surrounding real-worldenvironment. HMD includes an internal control unit 210, which mayinclude an internal power source and one or more printed-circuit boardshaving one or more processors, memory, and hardware to provide anoperating environment for executing programmable operations to processsensed data and present artificial-reality content on display 203.

In one example, in accordance with the techniques described herein,control unit 201 is configured to, based on the sensed data, compute acurrent pose for a frame of reference of HMD 112 using an adaptivelyselected set of DOF and, in accordance with the current pose, displayartificial reality content to the user. As explained herein, inaccordance with the techniques of the disclosure, control unit 210 mayadaptively transition between use of different DOF when computing poseupdated based on performance indicators with respect to currentoperating conditions or characteristics of the artificial realitysystem.

As one example, control unit 210 HMD 112 may be configured to operate ina first mode to determine a position and/or an orientation using 6DOF.For example, while operating in the first mode, control unit 210 of HMD112 is configured to determine one or more poses within the artificialreality environment using both rotational transformations of the viewingperspective (e.g., rotational movement along a vertical, transverse, orlongitudinal axis of HMD 112) and translational transformations of theviewing perspective (e.g., translational movement along the vertical,transverse, or longitudinal axis of HMD 112). HMD 112 may, based onapplication of policies, dynamically transition to operating in a secondmode in which control unit 210 is configured to determine a positionand/or an orientation using only 3DOF. For example, while operating inthe second mode, HMD 112 may determine one or more poses within theartificial reality environment using only rotational transformations ofthe viewing perspective while preventing translational transformationsof the viewing perspective.

In another example, rather than locally compute pose estimates, controlunit 210 relays sensed data, such as motion data from motion sensor 206and image data from image capture devices 208, to an external console,such as console 106 of FIGS. 1A, 1B, for pose tracking using adaptiveDOF selection in accordance with the techniques described herein. Theinformation may include performance telemetry, movement information,user commands, and other information relevant to rendering a 3D pose inthe artificial reality environment. Based on the relayed data, console106 computes estimated movement of the frame of reference of HMD 112with respect to only the permissible DOF of the selected set, therebyoperating to provide a high-quality and more realistic artificialreality experience for user 110 and avoid inaccuracies that mayotherwise arise.

FIG. 3 is a block diagram showing example implementations of console 106and head mounted display 112 of FIGS. 1A, 1B. In the example of FIG. 3,console 106 performs pose tracking for HMD 112 using adaptive DOFselection in accordance with the techniques described herein based onsensed data, such as motion data and image data from received from HMD112 and/or external sensors.

In this example, HMD 112 includes one or more processors 302 and memory304 that, in some examples, provide a computer platform for executing anoperation system 305, which may be an embedded, real-time multitaskingoperating system. In turn, operating system 305 provides a multitaskingoperating environment for executing one or more software components 317.As discussed with respect to the example of FIG. 2, processors 302 arecoupled to electronic display 306, motion sensors 206 and image capturedevices 208. In some examples, processors 302 and memory 304 may beseparate, discrete components. In other examples, memory 304 may beon-chip memory collocated with processors 302 within a single integratedcircuit.

In general, console 106 is a computing device that processes image andtracking information received from camera 102 (FIG. 1B) and/or HMD 112to compute one or more poses for HMD 112 within the artificial realityenvironment. In some examples, console 106 is a single computing device,such as a workstation, a desktop computer, a laptop. In some examples,at least a portion of console 106, such as processors 352 and/or memory354, may be distributed across a cloud computing system, a data center,or across a network, such as the Internet, another public or privatecommunications network, for instance, broadband, cellular, Wi-Fi, and/orother types of communication networks, for transmitting data betweencomputing systems, servers, and computing devices.

In the example of FIG. 3, console 106 includes one or more processors312 and memory 314 that, in some examples, provide a computer platformfor executing an operation system 316, which may be an embedded,real-time multitasking operating system. In turn, operating system 316provides a multitasking operating environment for executing one or moresoftware components 317. Processors 312 are coupled I/O interface 315,which provides one or more I/O interfaces for communicating withexternal devices, such as a keyboard, game controllers, display devices,image capture devices, and the like. Moreover, I/O interfaces 315 mayinclude one or more wired or wireless network interface controllers(NICs) for communicating with a network, such as network 104. Each ofprocessors 302, 312 may comprise any one or more of a multi-coreprocessor, a controller, a digital signal processor (DSP), anapplication specific integrated circuit (ASIC), a field-programmablegate array (FPGA), or equivalent discrete or integrated logic circuitry.Memory 304, 314 may comprise any form of memory for storing data andexecutable software instructions, such as random-access memory (RAM),read only memory (ROM), programmable read only memory (PROM), erasableprogrammable read only memory (EPROM), electronically erasableprogrammable read only memory (EEPROM), and flash memory.

Software applications 317 of console 106 operate to provide an overallartificial reality application. In this example, software applications317 include application engine 320, rendering engine 322, performancemonitor 324, pose tracker 326, and DOF selector 328.

In general, application engine 314 includes functionality to provide andpresent an artificial reality application, e.g., a teleconferenceapplication, a gaming application, a navigation application, aneducational application, training or simulation applications, and thelike. Application engine 314 may include, for example, one or moresoftware packages, software libraries, hardware drivers, and/orApplication Program Interfaces (APIs) for implementing an artificialreality application on console 106. Responsive to control by applicationengine 320, rendering engine 322 retrieves content from contentrepository 330 and constructs 3D artificial reality content for displayto the user by application engine 340 of HMD 112.

Application engine 320 and rendering engine 322 construct the artificialcontent for display to user 110 in accordance with current poseinformation for a frame of reference, typically a viewing perspective ofHMD 112, as determined by pose tracker 326. Based on the current viewingperspective, rendering engine 322 constructs the 3D, artificial realitycontent which may be overlaid, at least in part, upon the real-world 3Denvironment of user 110. During this process, pose tracker 326 operateson sensed data received from HMD 112, such as movement information anduser commands, and, in some examples, data from any external sensors 90(FIGS. 1A, 1B), such as external cameras, to capture 3D informationwithin the real world environmental, such as motion by user 110 and/orfeature tracking information with respect to user 110. Based on thesensed data, pose tracker 326 determines a current pose for the frame ofreference of HMD 112 and, in accordance with the current pose,constructs the artificial reality content for communication to HMD 112for display to the user.

In accordance with the techniques of the disclosure, DOF selector 328performs adaptive DOF selection based on performance indicatorsdetermined by performance monitor 324 with respect to current operatingconditions or characteristics of the artificial reality system. DOFselector 328 adaptively applies one or more policies to the currentperformance indicators to dynamically select, in real-time or pseudoreal-time, between different sets of permissible degrees of freedom forestimated motion (i.e., estimated rotations and translations). Posetracker 326 uses the selected degrees of freedom when computing acurrent pose for the frame of reference of HMD 112. That is, whendetermining an updated pose for HMD 112 for the current viewingperspective, pose tracker 326 processes current motion data using thedegrees of freedom selected by DOF selector 328, which in some examplesmay be only a subset of the available DOF. In other words, based on thecurrent data captured from motion sensors 206, image capture devices 208and/or any external sensors, pose tracker 326 computes estimatedmovement of the frame of reference with respect to only the permissibledegrees of freedom of the set selected by DOF selector 328, therebyoperating to provide a high-quality and more realistic artificialreality experience for user 110 and avoid inaccuracies that mayotherwise arise.

In some examples, each performance indicator is associated with acorresponding performance threshold defined by a respective one ofpolicies 344, which may take the form of a policy database or ruleset.DOF selector 328 applies one or more of policies 344 to the performanceindicators computed by performance monitor 324 to determine whether atransition condition has been satisfied, thereby triggering usage of adifferent set of DOF. Upon meeting or exceeding the performancethreshold value for a particular performance indicator, DOF selector 328dynamically selects between the different sets of permissible DOF to beused by pose tracker 326 in computing an updated pose for the frame ofreference of HMD 112. As explained herein, in one example, performancemonitor 324 may monitor operating conditions and characteristics todetermine current performance indicators, and DOF selector 328 may applypolicies to the current performance indicators to dynamically selectbetween a first mode in which computed motion of the frame of referenceis permitted with respect to a full 6DOF (e.g., both rotational andtranslational movement of the frame of reference) and a second mode inwhich motion of the frame of reference is permitted with respect to only3DOF (e.g., rotational movement of the frame of reference).

Performance indicators computed by performance monitor 324 may include,for example, image tracking quality, eye tracking quality, environmentalbrightness, line-of-sight, image texture, a number of real-worldfeatures and corresponding artificial-reality world features,characteristics of the real-world features, or other visibilityconditions affecting image tracking, rendering quality, networkperformance or latency, computing resource usage, jitter, or otherfactors that may negatively impact the ability of pose tracker 326 tocompute poses of HMD 112. In some examples, a user may define orconfigure performance indicators, such as adding or removing policiesspecifying criteria or thresholds for various performance indicators. Tocompute performance indicators, pose tracker 326 may operate on inputfrom one or more sensors, such as photosensors or photodiodes, networkmonitors, hardware monitors, sensors, accelerometers, IMUs and the like.

FIG. 4 is a block diagram depicting an example in which pose trackingand DOF selection is performed by HMD 112 of FIGS. 1A, 1B to renderartificial reality content in accordance with the techniques of thedisclosure.

In this example, similar to FIG. 3, HMD 112 includes one or moreprocessors 302 and memory 304 that, in some examples, provide a computerplatform for executing an operation system 305, which may be anembedded, real-time multitasking operating system. In turn, operatingsystem 305 provides a multitasking operating environment for executingone or more software components 417. Moreover, processor(s) 302 arecoupled to electronic display 306, motion sensors 206, and image capturedevices 208.

In the example of FIG. 4, software components 417 operate to provide anoverall artificial reality application. In this example, softwareapplications 417 include application engine 440, rendering engine 422,performance monitor 424, pose tracker 426, and DOF selector 428. Invarious examples, software components 417 operate similar to thecounterpart components of console 106 of FIG. 3 (e.g., applicationengine 320, rendering engine 322, performance monitor 324, pose tracker326, and DOF selector 328) to construct the artificial content fordisplay to user 110 in accordance with current pose information for aframe of reference. For example, based on the current viewingperspective, rendering engine 422 constructs the 3D, artificial realitycontent which may be overlaid, at least in part, upon the real-world 3Denvironment of user 110. In accordance with the techniques of thedisclosure, DOF selector 428 performs adaptive DOF selection based onperformance indicators determined by performance monitor 424 withrespect to current operating conditions or characteristics of theartificial reality system. DOF selector 428 adaptively applies one ormore policies to the current performance indicators to dynamicallyselect, in real-time or pseudo real-time, between different sets ofpermissible DOF for estimated motion (i.e., estimated rotations andtranslations). DOF selector 428 applies one or more of policies 444 tothe performance indicators computed by performance monitor 424 todetermine whether a transition condition has been satisfied, therebytriggering usage of a different set of DOF. Pose tracker 426 uses theselected DOF when computing a current pose for the frame of reference ofHMD 112, thereby operating to provide a high-quality and more realisticartificial reality experience for user 110 and avoid inaccuracies thatmay otherwise arise.

FIG. 5 is an illustration depicting artificial reality content renderedin accordance with the techniques of the disclosure. For purposes ofexample, FIG. 5 is described with respect to FIG. 3 in which posetracking and DOF selection based on monitored performance indicators isperformed by console 106. However, FIG. 5 may be implemented by othersystems, the example system of FIG. 4 in which local pose and DOFselection is performed by HMD 112.

In the example scene 502A of FIG. 5, pose tracker 326 is operating in afirst mode in which pose tracker 326 computes one or more poses of HMD112 within a 3D environment using 6DOF. For example, while operating inthe first mode, pose tracker 326 processes sensed input data e.g.,motion & translational information from HMD 112, image data from one ormore cameras, etc.) to determine one or more poses for HMD 112 usingboth rotational transformations of the viewing perspective (e.g.,rotational movement along a vertical, transverse, or longitudinal axisof HMD 112) and translational transformations of the viewing perspective(e.g., translational movement along the vertical, transverse, orlongitudinal axis of HMD 112). Rendering engine 322 of console 106renders artificial reality content 122 based on the computed pose andoutputs rendered artificial reality content 122 as artificial realityscene 502A for display by, e.g., HMD 112A to user 110. As shown in theexample scene 502A of FIG. 5, rendering engine 322 has renderedartificial reality content depicting translational movement of avatar120A to a second position shown as avatar 120A′.

In the example scene 502B of FIG. 5, pose tracker 326 is operating in asecond mode in which pose tracker 326 computes one or more poses of HMD112 within a 3D environment using 3DOF. That is, in this example, DOFselector 328 has applied one or more policies to performance indicatorsdetermined by performance monitor 324 to switch from the first mode inwhich pose tracker 326 computes the poses of HMD 112 using 6DOF to thesecond mode in which pose tracker 326 computes the one or more posesusing 3DOF. For example, while operating in the second mode, posetracker 326 determines one or more poses for HMD 112 by permitting onlyrotational transformations of the viewing perspective and preventingtranslational transformations of the viewing perspective that may be,for example, caused by inaccurate data or approximations due tosuboptimal operating conditions. Rendering engine 322 of console 106renders artificial reality content 122 based on the computed pose andoutputs the rendered content as artificial reality scene 502 for displayby, e.g., HMD 112A to user 110. As shown in the example scene 502B ofFIG. 5, when operating in the second mode, pose tracker 326 preventstranslation movements even when processing sensed input data as in theprior example of scene 502A. That is, because performance monitor 324has determined that one or more performance indicators indicate that theinput data may be inaccurate or of low quality, DOF selector 328 hasadaptively triggered selection of the second mode in which pose tracker326 computes the one or more poses using 3DOF. As a result, inprocessing the sensed input data (e.g., motion & translationalinformation from HMD 112, image data from one or more cameras, etc.),pose tracker 326 has allowed only rotational movements when determiningan updated pose. Rendering engine 322 has rendered content based on theupdated pose, in this case translational movement of avatar 120A to asecond position has been prevented, as shown as avatar 120A′ in scene502B.

FIG. 6 is a block diagram depicting an example implementation of polices344, 444 (FIGS. 3, 4) as a policy repository 600 in accordance with thetechniques of the disclosure. For purpose of example, policy repository600 is described with respect to DOF selector 328 and system 300 of FIG.3. However, policy repository 600 may be implemented by other systems,such as DOF selector 428 and system 400 of FIG. 4.

As described above, performance monitor 324 monitors current operatingconditions of system 300 to compute performance indicators. DOF selector328 applies one or more of policies 606 of policy repository 600 to thecomputed performance indicators to select between a first mode in whichpose tracker 326 computes one or more poses of HMD 112 within a 3Denvironment using a first set of DOF (e.g., 6DOF) and a second mode inwhich pose tracker 326 computes the one or more poses using a second setof DOF (e.g., 3DOF). In the examples described above, policy repository600 may be stored in memories 304, 314.

In this example, policy repository 600 includes a plurality of policies606. Each policy 606 is associated with a respect one of condition sets602A-602N (collectively, “condition sets 602”) and one of a plurality ofactions 604A-604N (collectively, “actions 604”). In this way, eachpolicy 606 defines a set of required conditions (condition set 602) andassociates the set of conditions with a respective action 604. Forexample, upon determining that a condition set 602 is satisfied for agiven one of policies 606, DOF selector 328 executes the correspondingaction 604. Each action 604 specifies an action for DOF selector 328 totake upon determining that the corresponding condition 602 is satisfiedand typically defines a set of DOF to use upon satisfaction of thecondition set. For example, policies 600 may define actions in the formof transitions, based on condition sets 604, between the first mode inwhich pose tracker 326 computes the poses of HMD 112 using 6DOF and thesecond mode in which pose tracker 326 computes the poses using 3DOF. Insome examples, a user may configure or change the action specified foreach action 604.

In some examples, each condition set 602 specifies one or moreperformance indicators computed from monitored conditions and criteria(e.g., greater than a threshold, less than a threshold, within a range)for each of the one or more performance indicators. Each of theperformance indicators relate to conditions that may affect an abilityof pose tracker 326 to accurately compute poses of HMD 112 using 6DOF.Performance indicators may be computed in a variety of forms (e.g.,current performance level on a scale, a degradation percentage, a lossratio and the like) for various monitored conditions, such as imagetracking quality, eye tracking quality, environmental brightness,line-of-sight, image texture, a number of real-world features andcorresponding artificial-reality world features, characteristics of thereal-world features, or other visibility conditions affecting imagetracking, rendering quality, network performance or latency, computingresource usage, jitter, or other factors that may negatively impact theability of system 2 to compute poses of HMD 112. In some examples, auser may define or configure condition sets 602, such as adding orremoving condition sets 602 or editing existing condition sets 602,e.g., by adjusting or changing a threshold and/or range specified by acondition.

As one example, a first condition set (condition set 602) specifies athreshold for a performance indicator computed from monitored networklatency. Performance monitor 324 monitors network performance (possiblyby communication with I/O interface 315 to access network performancedata), determines a performance indicator (such as an average latency,max latency, raw latency time). DOF selector 328 applies policy 602A todetermine whether the performance indicator for network latencysatisfies the criteria specifies for network latency by condition set602A (such as in excess of threshold latency), and as such, thatcondition set 602A is satisfied. DOF selector 328 operates in responseto the application of the policy. For example, action 604A may specifythat DOF selector 328 selects the second mode in which pose tracker 326computes the poses of HMD 112 within the 3D environment using 3DOF dueto high network latency. Counterpart policies may be defined fortriggering use of 6DOF for pose computation when network latency returnsto a satisfactory level, and hysteresis, if desired, may be definedwithin the criteria of the policies to prevent excessive switchingbetween different sets of DOF.

As a more complex example, condition set 602C of policy 606C may specifya threshold for a sum of: (1) the number of real-world featurescurrently being tracked by application engine 340 of HMD 112 using imagecapture devices 208 (FIG. 2) and (2) a number of real-world featurescurrently being tracked by application engine 320 of console 106. Basedon these monitored conditions, performance monitor 324 computes thedefined performance indicator as the specified sum of overall featurestracked. DOF selector 328 applies policy 606C to the defined performanceindicator. For example, DOF selector 328 may determine that the sum ofthe number of real-world features tracked is less than a thresholdspecified by condition set 602C, and as such, that condition 602C issatisfied. Further, action 604C may specify that DOF selector 328 selectthe second mode in which pose tracker 326 computes the poses of HMD 112within the 3D environment using 3DOF. In this way, performance monitor324 and DOF selector 328 may cause pose tracker 326 to switch from thefirst mode in which pose tracker 326 computes the poses of HMD 112 using6DOF to the second mode in which pose tracker 326 computes the posesusing 3DOF. Similarly, counterpart policies may be defined fortriggering use of 6DOF for pose computation when the number of featurescurrently being tracked by the artificial reality system meets orexceeds the define threshold.

In other examples, a give condition set 602 may define a plurality ofconditions, each with which may be defined with respect to one or moreperformance indicators. In this way, policies 606 may define actionsthat are triggered based on rules that specific complex, combinations ofdifferent performance indicators.

As yet another example, policy repository 600 specifies a default modefor computing the poses of HMD 112 if no condition 602 is satisfied. Forexample, DOF selector 328 determines that the number of real-worldfeatures currently being tracked by the application engines of HMD 112and console 106 is greater than the threshold for the number ofreal-world features required by condition 602C, and as such, thatcondition 602C is no longer satisfied. Because, in this example, nopolicies triggering 3DOF are satisfied, DOF selector 328 may apply adefault policy, which in turn directs DOF selector 328 to select 6DOFand cause pose tracker 326 to switch from the second mode in which posetracker 326 computes the poses of HMD 112 using 3DOF back to the firstmode in which pose tracker 326 computes the poses using 6DOF.

In some examples, console 106, HMD 112 or another component of anartificial reality system, such as a cloud-based service or managementplatform, presents a user interface by which user 110 or anadministrator may edit policy repository 600. The user interface mayinclude various U/I mechanisms for adding, removing and editingpolicies, including input and output fields for defining condition setsas rules for applying criteria to performance indicators for controllingtransitions between modes that utilize different DOF when computing poseupdates and rending content for an artificial reality environment.

FIG. 7 is a flowchart illustrating an example operation for adaptivelyselecting DOF for use in computing one or more poses in accordance withthe techniques of the disclosure. For purposes of example, the flowchartof FIG. 7 is described with respect to operation of example console 106,HMD 112 and other components of FIG. 3. However, the operation of FIG. 7may be implemented by other systems, such as HMD 112 of FIG. 4.

During operation, sensors 90 monitor operating conditions and outputdata indicative of current operating conditions to processors 312 ofconsole 106 (702). The sensed data may include, for example, one or moreintegral or external image capture devices, photosensors, networkmonitors, hardware or software resource monitors and the like thatmonitor components of the artificial reality system and outputmonitoring data. Likewise, processors 302 of HMD 112 monitor operatingconditions of HMD 112 and output the sensed data to processors 312 ofconsole 106 (704). The information output by HMD 112 may include, e.g.,performance telemetry, movement information, user commands, number offeatures tracked, current network performance data such as latency,jitter, burstiness, and/or other information relevant to renderingcontent.

Performance monitor 324 executed by processors 312 of console 106process the received performance information to determine one or moreperformance indicators that may affect the quality of artificial realitycontent 122. For example, performance monitor 324 may determineperformance indicators such as a quality level of image tracking, an eyetracking quality, environmental brightness, line-of-sight, imagetexture, a number of real-world features and correspondingartificial-reality world features, characteristics of the real-worldfeatures, or other visibility conditions affecting image tracking,rendering quality, network performance or latency, computing resourceusage, jitter, or other factors that may negatively impact the abilityof artificial reality system 2 to compute poses of HMD 112 using a full6DOF.

DOF selector 328 of console 106 applies condition sets defined bypolicies 344 to the computed performance indicators to adaptively selectDOF for computation of poses for HMD 112 (708). For example, DOFselector 328 applies policies to the performance indicators to determinewhether a transition condition has been satisfied. Upon satisfying acondition set for a particular policy with respect to one or moreperformance indicators, DOF selector 328 directs pose tracker 326 totransition from computing poses using a current set of DOF (e.g. 6DOF)to computing poses using a second set of DOF (e.g. 3DOF). For example,upon determining that feature tracking is negatively affected or ifrendering quality is poor, DOF selector 328 may cause pose tracker 326to transition from computing the poses of HMD 112 using 6DOF tocomputing the poses of HMD 112 using 3DOF. As another example, if thequality of feature tracking or rendering quality improves, then DOFselector 328 may cause pose tracker 326 to transition from computing theposes of HMD 112 using 3DOF back to computing the poses of HMD 112 using6DOF.

Pose tracker 326 computes one or more poses for HMD 112 using theselected DOF (712). Further, rendering engine 322 renders artificialreality content 122 in accordance with the computed one or more poses(714). Processors 312 of console 106 output the rendered content to HMD112 (716). In turn, processors 302 pf HMD 112 display the renderedcontent to a user wearing HMD 112, such as user 112 (718). Although theflowchart of FIG. 7 is described with respect to the example system ofFIG. 3, in other examples, as described above, various functionality,such as any of pose computation, performance monitoring and DOFselection, may be implemented by HMD 112, console 106, or combinationsthereof.

The techniques described in this disclosure may be implemented, at leastin part, in hardware, software, firmware or any combination thereof. Forexample, various aspects of the described techniques may be implementedwithin one or more processors, including one or more microprocessors,DSPs, application specific integrated circuits (ASICs), fieldprogrammable gate arrays (FPGAs), or any other equivalent integrated ordiscrete logic circuitry, as well as any combinations of suchcomponents. The term “processor” or “processing circuitry” may generallyrefer to any of the foregoing logic circuitry, alone or in combinationwith other logic circuitry, or any other equivalent circuitry. A controlunit comprising hardware may also perform one or more of the techniquesof this disclosure.

Such hardware, software, and firmware may be implemented within the samedevice or within separate devices to support the various operations andfunctions described in this disclosure. In addition, any of thedescribed units, modules or components may be implemented together orseparately as discrete but interoperable logic devices. Depiction ofdifferent features as modules or units is intended to highlightdifferent functional aspects and does not necessarily imply that suchmodules or units must be realized by separate hardware or softwarecomponents. Rather, functionality associated with one or more modules orunits may be performed by separate hardware or software components orintegrated within common or separate hardware or software components.

The techniques described in this disclosure may also be embodied orencoded in a computer-readable medium, such as a computer-readablestorage medium, containing instructions. Instructions embedded orencoded in a computer-readable storage medium may cause a programmableprocessor, or other processor, to perform the method, e.g., when theinstructions are executed. Computer readable storage media may includerandom access memory (RAM), read only memory (ROM), programmable readonly memory (PROM), erasable programmable read only memory (EPROM),electronically erasable programmable read only memory (EEPROM), flashmemory, a hard disk, a CD-ROM, a floppy disk, a cassette, magneticmedia, optical media, or other computer readable media.

As described by way of various examples herein, the techniques of thedisclosure may include or be implemented in conjunction with anartificial reality system. As described, artificial reality is a form ofreality that has been adjusted in some manner before presentation to auser, which may include, e.g., a virtual reality (VR), an augmentedreality (AR), a mixed reality (MR), a hybrid reality, or somecombination and/or derivatives thereof. Artificial reality content mayinclude completely generated content or generated content combined withcaptured content (e.g., real-world photographs). The artificial realitycontent may include video, audio, haptic feedback, or some combinationthereof, and any of which may be presented in a single channel or inmultiple channels (such as stereo video that produces athree-dimensional effect to the viewer). Additionally, in someembodiments, artificial reality may be associated with applications,products, accessories, services, or some combination thereof, that are,e.g., used to create content in an artificial reality and/or used in(e.g., perform activities in) an artificial reality. The artificialreality system that provides the artificial reality content may beimplemented on various platforms, including a head-mounted display (HMD)connected to a host computer system, a standalone HMD, a mobile deviceor computing system, or any other hardware platform capable of providingartificial reality content to one or more viewers.

1. An artificial reality system comprising: a head-mounted display (HMD)configured to output artificial reality content; a pose trackerconfigured to compute one or more poses of the HMD within athree-dimensional (3D) environment; a performance monitor, executing onone or more processors, configured to determine one or more performanceindicators associated with the artificial reality system, wherein theone or more performance indicators comprise at least one of an eyetracking quality, a network performance or latency, a computing resourceusage, or a measure of jitter; a degree-of-freedom (DOF) selectorconfigured to: apply one or more policies to the performance indicatorsto determine that a transition condition has been satisfied; and select,based on the determination that the transition condition has beensatisfied, between a first mode in which the pose tracker is configuredto compute the one or more poses of the HMD using six degrees-of-freedom(6DOF) and a second mode in which the pose tracker is configured tocompute the one or more poses using three degrees-of-freedom (3DOF); anda rendering engine configured to render the artificial reality contentbased on the computed pose.
 2. The artificial reality system of claim 1,wherein, to compute the one or more poses of the HMD using 6DOF, thepose tracker is further configured to compute one or more poses of theHMD with respect to both rotational movement and translational movementby the HMD, wherein, to compute the one or more poses of the HMD using3DOF, the pose tracker is further configured to compute the one or moreposes of the HMD with respect to rotational movement by the HMD but nottranslational movement by the HMD, wherein the rotational movement bythe HMD comprises rotational movement about at least one of a verticalaxis of the HMD, a transverse axis of the HMD, or a longitudinal axis ofthe HMD, and wherein the translational movement by the HMD comprisestranslational movement along at least one of the vertical axis of theHMD, the transverse axis of the HMD, or the longitudinal axis of theHMD.
 3. The artificial reality system of claim 1, wherein, to apply theone or more policies to the performance indicators to select between thefirst mode and the second mode, the DOF selector is further configuredto: apply the one or more policies to a quality level of image trackingdetermined by the performance monitor to determine that the transitioncondition has been satisfied; and select, based on the determinationthat the transition condition has been satisfied, between the first modeand the second mode.
 4. The artificial reality system of claim 1,wherein, to apply the one or more policies to the performance indicatorsto select between the first mode and the second mode, the DOF selectoris configured to: apply the one or more policies to the eye trackingquality determined by the performance monitor to determine that thetransition condition has been satisfied; and select, based on thedetermination that the transition condition has been satisfied, betweenthe first mode and the second mode.
 5. The artificial reality system ofclaim 1, wherein, to apply the one or more policies to the performanceindicators to select between the first mode and the second mode, the DOFselector is configured to: apply the one or more policies to a level ofan environmental brightness determined by the performance monitor todetermine that the transition condition has been satisfied and select,based on the determination that the transition condition has beensatisfied, between the first mode and the second mode.
 6. The artificialreality system of claim 1, wherein, to apply the one or more policies tothe performance indicators to select between the first mode and thesecond mode, the DOF selector is further configured to: apply the one ormore policies to a number of features currently being tracked by theartificial reality system to determine that the transition condition hasbeen satisfied and select, based on the determination that thetransition condition has been satisfied, between the first mode and thesecond mode.
 7. The artificial reality system of claim 1, wherein, toapply the one or more policies to the performance indicators to selectbetween the first mode and the second mode, the DOF selector is furtherconfigured to: apply the one or more policies to an image texture of areal-world feature determined by the performance monitor to determinethat the transition condition has been satisfied and select, based onthe determination that the transition condition has been satisfied,between the first mode and the second mode.
 8. The artificial realitysystem of claim 1, wherein, to apply the one or more policies to theperformance indicators to select between the first mode and the secondmode, the DOF selector is configured to: apply the one or more policiesto the network performance or latency determined by the performancemonitor to determine that the transition condition has been satisfied:and select, based on the determination that the transition condition hasbeen satisfied, between the first mode and the second mode.
 9. Theartificial reality system of claim 1, wherein, to apply the one or morepolicies to the performance indicators to select between the first modeand the second mode, the DOF selector is configured to: apply the one ormore policies to the computing resource usage determined by theperformance monitor to determine that the transition condition has beensatisfied; and select, based on the determination that the transitioncondition has been satisfied, between the first mode and the secondmode.
 10. The artificial reality system of claim 1, wherein, to applythe one or more policies to the performance indicators to select betweenthe first mode and the second mode, the DOF selector is configured to:apply the one or more policies to the measure of jitter determined bythe performance monitor to determine that the transition condition hasbeen satisfied; and select, based on the determination that thetransition condition has been satisfied, between the first mode and thesecond mode.
 11. The artificial reality system of claim 1, wherein theHMD comprises the performance monitor, the DOF selector, the posetracker, and the rendering engine.
 12. The artificial reality system ofclaim 1, further comprising a console device, wherein the console devicecomprises the performance monitor, the DOF selector, the pose tracker,and the rendering engine.
 13. The artificial reality system of claim 1,wherein to apply the one or more policies to the performance indicatorsto select between the first mode in which the pose tracker computes theone or more poses of the HMD within the 3D environment using 6DOF andthe second mode in which the pose tracker computes the one or more posesusing 3DOF, the DOF selector is configured to apply the one or morepolicies to the performance indicators to switch from selecting thefirst mode in which the pose tracker computes the one or more poses ofthe HMD within the 3D environment using 6DOF to selecting the secondmode in which the pose tracker computes the one or more poses of the HMDwithin the 3D environment using 3DOF, and wherein the pose tracker isfurther configured to switch from computing the one or more poses forthe HMD within the 3D environment using 6DOF to computing the one ormore poses for the HMD within the 3D environment using 3DOF.
 14. Theartificial reality system of claim 1, wherein to apply the one or morepolicies to the performance indicators to select between the first modein which the pose tracker computes the one or more poses of the HMDwithin the 3D using 6DOF and the second mode in which the pose trackercomputes the one or more poses using 3DOF, the DOF selector isconfigured to apply the one or more policies to the performanceindicators to switch from selecting the second mode in which the posetracker computes the one or more poses of the HMD within the 3Denvironment using 3DOF to selecting the first mode in which the posetracker computes the one or more poses of the HMD within the 3Denvironment using 6DOF, and wherein the pose tracker is furtherconfigured to switch from computing the one or more poses for the HMDwithin the 3D environment using 3DOF to computing the one or more posesfor the HMD within the 3D environment using 6DOF.
 15. A methodcomprising: determining one or more performance indicators associatedwith an artificial reality system having at least one head mounteddisplay (HMD), wherein the one or more performance indicators compriseat least one of an eye tracking quality, a network performance orlatency, a computing resource usage, or a measure of jitter; applyingone or more policies to the performance indicators to determine that atransition condition has been satisfied; and selecting, based on thedetermination that the transition condition has been satisfied, betweena first mode in which one or more poses of the HMD within a threedimensional (3D) environment are computed using six degrees-of-freedom(6DOF) and a second mode in which the one or more poses are computedusing three degrees-of-freedom (3DOF); computing the one or more posesfor the HMD within the 3D environment in accordance with the selectedmode; rendering artificial reality content based on the computed one ormore poses; and outputting, by the HMD, the rendered artificial realitycontent.
 16. The method of claim 15, wherein computing the one or moreposes of the HMD using 6DOF comprises computing one or more poses of theHMD with respect to both rotational movement and translational movementby the HMD, wherein computing the one or more poses of the HMD using3DOF comprises computing the one or more poses of the HMD with respectto rotational movement by the HMD but not translational movement by theHMD, wherein the rotational movement by the HMD comprises rotationalmovement about at least one of a vertical axis of the HMD, a transverseaxis of the HMD, or a longitudinal axis of the HMD, and wherein thetranslational movement by the HMD comprises translational movement alongat least one of the vertical axis of the HMD, the transverse axis of theHMD, or the longitudinal axis of the HMD.
 17. The method of claim 15,wherein applying the one or more policies to the performance indicatorsto select between the first mode and the second mode further comprises:applying the one or more policies to a quality level of image trackingto determine that the transition condition has been satisfied; andselecting, based on the determination that the transition condition hasbeen satisfied, between the first mode and the second mode.
 18. Themethod of claim 15, wherein applying the one or more policies to theperformance indicators to select between the first mode and the secondmode comprises: applying the one or more policies to the eye trackingquality to determine that the transition condition has been satisfied;and selecting, based on the determination that the transition conditionhas been satisfied, between the first mode and the second mode.
 19. Themethod of claim 15, wherein applying the one or more policies to theperformance indicators to select between the first mode and the secondmode comprises: applying the one or more policies to the computingresource usage to determine that the transition condition has beensatisfied; and selecting, based on the determination that the transitioncondition has been satisfied, between the first mode and the secondmode.
 20. A non-transitory, computer-readable medium comprisinginstructions that, when executed, cause one or more processors to:determine one or more performance indicators associated with anartificial reality system having at least one head mounted display(HMD), wherein the one or more performance indicators comprise at leastone of an eye tracking quality, a network performance or latency, acomputing resource usage, or a measure of jitter; apply one or morepolicies to the performance indicators to determine that a transitioncondition has been satisfied; select, based on the determination thatthe transition condition has been satisfied, between a first mode inwhich one or more poses of the HMD within a three dimensional (3D)environment are computed using six degrees-of-freedom (6DOF) and asecond mode in which the one or more poses are computed using threedegrees-of-freedom (3DOF); compute the one or more poses for the HMDwithin the 3D environment in accordance with the selected mode; renderartificial reality content based on the computed one or more poses; andoutput the rendered artificial reality content.